//package leecoke;
//
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.HashMap;
//import java.util.List;
//
///**
// * https://leetcode.cn/problems/number-of-provinces/description/
// */
//public class Test0547 {
//
//    public static int findCircleNum(int[][] isConnected) {
//        // 构建 0 - N 个集合
//        int length = isConnected[0].length;
//        List<Integer> list = new ArrayList<>();
//        for (int i = 0; i < length; i++) {
//            list.add(i);
//        }
//        UnionSet<Integer> unionSet = new UnionSet<>(list);
//        for (int i = 0; i < isConnected.length; i++) {
//            // 只需要半个矩阵
//            for (int j = i + 1; j < isConnected[i].length; j++) {
//                if (isConnected[i][j] == 1) {
//                    unionSet
//                }
//            }
//        }
//    }
//
//    public static class Node<V>{
//        V value;
//
//        Node(V v) {
//            this.value = v;
//        }
//    }
//
//    public static class UnionSet<V> {
//        HashMap<V, Node<V>> nodes;
//        HashMap<Node<V>, Node<V>> parents;
//        HashMap<Node<V>, Integer> sizeMap;
//
//        public UnionSet(List<V> values) {
//            for (V value : values) {
//                Node<V> node = new Node<>(value);
//                nodes.put(value, node);
//                parents.put(node, node);
//                sizeMap.put(node, 1);
//            }
//        }
//
//        public int getSize() {
//            return sizeMap.size();
//        }
//
//        public Node<V> findFather(Node<V> cur) {
//
//        }
//    }
//
//}
